home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / packer / tar / src / open3.h < prev    next >
C/C++ Source or Header  |  1995-03-09  |  2KB  |  51 lines

  1. /*
  2.  * @(#)open3.h 1.4 87/11/11    Public Domain.
  3.  *
  4.  * open3.h -- #defines for the various flags for the Sys V style 3-argument
  5.  * open() call.  On BSD or System 5, the system already has this in an
  6.  * include file.  This file is needed for V7 and MINIX systems for the
  7.  * benefit of open3() in port.c, a routine that emulates the 3-argument
  8.  * call using system calls available on V7/MINIX. 
  9.  *
  10.  * This file is needed by PD tar even if we aren't using the
  11.  * emulator, since the #defines for O_WRONLY, etc. are used in
  12.  * a couple of places besides the open() calls, (e.g. in the assignment
  13.  * to openflag in extract.c).  We just #include this rather than
  14.  * #ifdef them out.
  15.  *
  16.  * Written 6/10/87 by rmtodd@uokmax (Richard Todd).
  17.  *
  18.  * The names have been changed by John Gilmore, 31 July 1987, since
  19.  * Richard called it "bsdopen", and really this change was introduced in
  20.  * AT&T Unix systems before BSD picked it up.
  21.  */
  22.  
  23. /* Only one of the next three should be specified */
  24. #define O_RDONLY     0 /* only allow read */
  25. #define    O_WRONLY     1 /* only allow write */
  26. #define    O_RDWR         2 /* both are allowed */
  27.  
  28. /* The rest of these can be OR-ed in to the above. */
  29. /*
  30.  * O_NDELAY isn't implemented by the emulator.  It's only useful (to tar) on
  31.  * systems that have named pipes anyway; it prevents tar's hanging by
  32.  * opening a named pipe.  We #ifndef it because some systems already have
  33.  * it defined.
  34.  */
  35. #ifndef O_NDELAY
  36. #define O_NDELAY     4 /* don't block on opening devices that would
  37.                 * block on open -- ignored by emulator. */
  38. #endif
  39. #define O_CREAT         8 /* create file if needed */
  40. #define O_EXCL        16 /* file cannot already exist */
  41. #define O_TRUNC        32 /* truncate file on open */
  42. #define O_APPEND    64 /* always write at end of file -- ignored by emul */
  43.  
  44. #ifdef EMUL_OPEN3
  45. /*
  46.  * make emulation transparent to rest of file -- redirect all open() calls
  47.  * to our routine
  48.  */
  49. #define open    open3
  50. #endif
  51.